const Koa = require('koa');              // 导入koa
const Router = require('koa-router');    // 导入koa-router
const {api} = require('./routers/api');
const {search} = require('./routers/api/search')
const bodyParser = require('koa-bodyparser');
const session = require('koa-session');
const serStatic = require('koa-static');
const multer = require('@koa/multer');
const cors = require('@koa/cors');



import config from './config';
const {HTTP_HOST, HTTP_PORT} = config;
console.log(HTTP_PORT)

const CONFIG = {
  key: 'koa:sess', /** 默认 */
  maxAge: 10000,  /*  cookie的过期时间        【需要修改】  */
  overwrite: true, /** (boolean) can overwrite or not (default true)    没有效果，默认 */
  httpOnly: false, /**  true表示只有服务器端可以获取cookie */
  signed: true, /** 默认 签名 */
  rolling: true, /** 在每次请求时强行设置 cookie，这将重置 cookie 过期时间（默认：false） 【需要修改】 */
  renew: false, /** (boolean) renew session when session is nearly expired      【需要修改】*/
}

const app = new Koa();                    // 新建一个Koa对象
const router = new Router();                    // 新建一个koa-router对象
app.use(bodyParser());
// app.use(cors({
//   origin: '*',
//   credentials: true
// }));
app.keys = ['some secret hurr'];
app.use(session(CONFIG, app));
app.use(async (ctx: any, next: any) => {
  ctx.set('Access-Control-Allow-Origin', ctx.headers.origin); // 很奇怪的是，使用 * 会出现一些其他问题
  ctx.set('Access-Control-Allow-Headers', 'content-type');
  ctx.set('Access-Control-Allow-Methods', 'OPTIONS,GET,HEAD,PUT,POST,DELETE,PATCH');
  ctx.set('Access-Control-Allow-Credentials', true);
  await next();
});
app.use(serStatic('./static'));

router.get('/', async (ctx: any) => {       // 截获所有路由,都指向此函数
  ctx.body = "Hello Koa and TS,I am keysking.";      // 向浏览器返回数据
});

router.use('/api', api);
router.use('/search', search);


app.use(router.routes());   // 使用路由

var arr  = [1, 3, 4];
arr.forEach(function(item) {
    item  += 66;
  console.log(arr)

})

app.listen(HTTP_PORT, () => {    // 监听8080端口
  console.log("Server running on "+ HTTP_HOST);
});


